package com.example.design.pay.strategy.Context;

import com.example.design.pay.strategy.PayStrategyInterface;
import com.example.design.pojo.Order;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.stereotype.Component;

// 策略模式上下文角色，门面模式子系统角色，工厂模式具体产品角色
public class PayContext extends AbstractPayContext{

    //关联抽象策略类
    private PayStrategyInterface payStrategyInterface;

    //设计具体策略
    public PayContext(PayStrategyInterface payStrategyInterface) {
        this.payStrategyInterface = payStrategyInterface;
    }

    //调用策略类
    @Override
    public String execute(Order order) {
        return this.payStrategyInterface.pay(order);
    }
}
